﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace bouquet
{
    class Program
    {
        static void Main(string[] args)
        {
            Bouquet bouquet = new Bouquet();
            bouquet.logger.Log("Program begins");
            Console.Write("Сколько цветов в букете: ");
            int amount = int.Parse(Console.ReadLine());
            Console.Write("Введите растения по порядку: ");
            string input;
            input = Console.ReadLine();
            string[] aa = input.Split(' ');
            foreach (string str in aa)
            {
                string[] arg;
                switch (str)
                {                        
                    case "Rose":
                        Console.WriteLine("Введите имя, цену, цвет, размер бутона розы");
                        arg = Console.ReadLine().Split(' ');
                        bouquet.Add( bouquet.creators[0].FactoryMethod(arg[0], int.Parse(arg[1]), (Rose.FlowerColour)int.Parse(arg[2]), (Rose.RoseSize)int.Parse(arg[3])) );
                        break;

                    case "Lilie":
                        Console.WriteLine("Введите имя, цену, цвет, сорт лилии");
                        arg = Console.ReadLine().Split(' ');
                        bouquet.Add(bouquet.creators[1].FactoryMethod(arg[0], int.Parse(arg[1]), (Lilie.FlowerColour)int.Parse(arg[2]), (Lilie.LilieSort)int.Parse(arg[3])));

                        break;

                    case "Herb":
                        Console.WriteLine("Введите имя, цену, количество ветвей зелени");
                        arg = Console.ReadLine().Split(' ');
                        bouquet.Add(bouquet.creators[2].FactoryMethod(arg[0], int.Parse(arg[1]), int.Parse(arg[2])));

                        break;
                }
            }

            bouquet.logger.Log("Program ends");

            Console.WriteLine();
            bouquet.Print();
            Console.WriteLine("Стоимость букета: " + bouquet.GetTotalPrice());
            Console.ReadKey();
            
        }
    }
}
